1. Field of the Invention
The invention relates generally to the field of digital data processing systems and more specifically to digital systems for processing arithmetic and logical arrays in the form of networks, with each array element being a processing node. The invention is also useful in processing arrays in the form of trees from, for example, a "root" processing element to the various "branches" and "leaves" along all of the various paths interconnecting the processing elements.
2. Description of the Prior Art
Current data processing systems have the basic form of a single processor element and a single memory element, with some mechanism for loading data and programs into the memory and obtaining processed data from the memory. The processor iteratively retrieves program instructions from the memory, determines the locations of the data to be processed by each instruction, and obtains the data from the memory, and then operates on the data as required by the instruction. The processor then determines the location into which the processed data is to be stored in memory, and transmits the data for storage in that location. The processor repeats this sequence of steps until all of the instructions have been processed, and the results are then available to the user in the memory.
The processor in the above-described system typically retrieves instructions from sequential locations in memory, subject to branches or discontinuities in the program which may cause the processor to begin retrieving instructions from elsewhere in the memory. The processor includes a program counter, which contains the address of the next instruction to be processed. Subject to loading from the program in response to program branches, the contents of the program counter typically is merely incremented to point to the next instruction, after each instruction is retrieved from memory.
Such data processing systems often require complex programming. To model, for example, complex networks of processing elements or to process arrays or trees of processing elements often requires programs which, when written, appear to be nothing like the original networks or arrays on which the programs are based. This also requires significant programming ability by the scientists, engineers and mathematicians who are attempting to use the system.